import pygame
from settings import Settings
import os
import sys

class Ship():
    def __init__(self,ai_settings,screen):
        self.screen = screen
        self.moving_right = False
        self.moving_left = False
        self.ai_settings = ai_settings
               
        #加载飞船图像并获取其外接矩形
        try:
            # 使用相对路径加载图像文件
            base_path = os.path.dirname(os.path.abspath(__file__))
            image_path = os.path.join(base_path, "images", "ship.bmp")
            self.image = pygame.image.load(image_path)
        except pygame.error as e:
            print(f"无法加载飞船图像: {e}")
            # 创建一个简单的表面作为备用图像
            self.image = pygame.Surface((50, 50))
            self.image.fill((0, 255, 0))  # 绿色表面作为备用图像
            
        self.rect = self.image.get_rect()
        self.screen_rect = screen.get_rect()
        
        #将每艘新飞船放在屏幕底部中央
        self.rect.centerx = self.screen_rect.centerx
        self.rect.bottom = self.screen_rect.bottom
        
        # 在飞船的属性center中存储小数值
        self.center = float(self.rect.centerx)
        
    def update(self):
        """根据移动标志调整飞船的位置"""
        if self.moving_right and self.rect.right < self.screen_rect.right:
            self.center += self.ai_settings.ship_speed_factor
        if self.moving_left and self.rect.left > 0:
            self.center -= self.ai_settings.ship_speed_factor
            
        #根据self.center更新rect对象
        self.rect.centerx = self.center

    def blitme(self):
        """在指定位置绘制飞船"""
        self.screen.blit(self.image,self.rect)